package com.training.admin.service;

import java.util.List;

import com.demo2do.core.entity.page.Page;
import com.training.admin.entity.project.ProjectPhase;
import com.training.admin.entity.project.TrainingResult;

/**
 * 
 * @author Rockett
 *
 */
public interface TrainingResultService extends DataService<TrainingResult>{
	
	/**
	 * get result for a project phase / all trainee
	 * @param projectPhaseId
	 * @return
	 */
	public List<TrainingResult> listByProjectPhaseId(Long projectPhaseId);
	/**
	 * get training result with trainee Id and project phase id
	 * @param traineeId
	 * @param projectPhaseId
	 * @return
	 */
	public List<TrainingResult> listByTraineeAndProjectPhase(Long traineeId,Long projectPhaseId);
	/**
	 * get training result with trainee Id and project id
	 * @param traineeId
	 * @param projectId
	 * @return
	 */
	public List<TrainingResult> listByTraineeAndProject(Long traineeId,Long projectId);
	/**
	 * get result count by project
	 * @param projectId
	 * @return
	 */
	public int countByProject(Long projectId);
	
    /**
     * @param projectPhase
     * @param page
     * @return
     */
    public List<TrainingResult> listByProjectPhase(ProjectPhase projectPhase, Page page);
    
    /**
     * @param projectPhase
     * @return
     */
    public int count(ProjectPhase projectPhase);

}
